home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue62 / ADSI / adsearchmain.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-08-07  |  2.6 KB  |  108 lines

  1. unit adsearchmain;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   ComCtrls, StdCtrls, ExtCtrls, ADSISearch;
  8.  
  9. type
  10.   TfrmMain = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     Label3: TLabel;
  14.     edtObjCategory: TEdit;
  15.     edtFilter: TEdit;
  16.     edtAttr: TEdit;
  17.     btnSearch: TButton;
  18.     chkFirstOnly: TCheckBox;
  19.     Memo1: TMemo;
  20.     Label4: TLabel;
  21.     edtBasePath: TEdit;
  22.     ADSISearch1: TADSISearch;
  23.     procedure btnSearchClick(Sender: TObject);
  24.  
  25.   private
  26.     { Private declarations }
  27.  
  28.   public
  29.     { Public declarations }
  30.   end;
  31.  
  32. var
  33.   frmMain: TfrmMain;
  34.  
  35.  
  36. (*============================================================================*)
  37. (*                           IMPLEMENTATION                                   *)
  38. (*============================================================================*)
  39.  
  40. implementation
  41.  
  42. {$R *.DFM}
  43.  
  44. uses
  45.   ActiveDs_TLB,
  46.   ComObj;
  47.  
  48. const
  49.   S_ADS_ERRORSOCCURRED = $00005011;
  50.   S_ADS_NOMORE_ROWS    = $00005012;
  51.   S_ADS_NOMORE_COLUMNS = $00005013;
  52.  
  53.   E_ADS_BAD_PATHNAME            = $80005000;
  54.   E_ADS_INVALID_DOMAIN_OBJECT   = $80005001;
  55.   E_ADS_INVALID_USER_OBJECT     = $80005002;
  56.   E_ADS_INVALID_COMPUTER_OBJECT = $80005003;
  57.   E_ADS_UNKNOWN_OBJECT          = $80005004;
  58.   E_ADS_PROPERTY_NOT_SET        = $80005005;
  59.   E_ADS_PROPERTY_NOT_SUPPORTED  = $80005006;
  60.   E_ADS_PROPERTY_INVALID        = $80005007;
  61.   E_ADS_BAD_PARAMETER           = $80005008;
  62.   E_ADS_OBJECT_UNBOUND          = $80005009;
  63.   E_ADS_PROPERTY_NOT_MODIFIED   = $8000500A;
  64.   E_ADS_PROPERTY_MODIFIED       = $8000500B;
  65.   E_ADS_CANT_CONVERT_DATATYPE   = $8000500C;
  66.   E_ADS_PROPERTY_NOT_FOUND      = $8000500D;
  67.   E_ADS_OBJECT_EXISTS           = $8000500E;
  68.   E_ADS_SCHEMA_VIOLATION        = $8000500F;
  69.   E_ADS_COLUMN_NOT_SET          = $80005010;
  70.   E_ADS_INVALID_FILTER          = $80005014;
  71.  
  72. procedure TfrmMain.btnSearchClick(Sender: TObject);
  73. var
  74.   ix : Integer;
  75.   slTemp : TStringList;
  76. begin
  77.   with ADSISearch1 do begin
  78.     BasePath := WideString(edtBasePath.Text);
  79.  
  80.     if chkFirstOnly.Checked then
  81.       MaxRows := 1
  82.     else
  83.       MaxRows := -1;
  84.  
  85.     Attributes := WideString(edtAttr.Text);
  86.     Filter := WideString(edtFilter.Text);
  87.     ObjectCategory := WideString(edtObjCategory.Text);
  88.  
  89.     Memo1.Lines.Clear;
  90.  
  91.     Search;
  92.  
  93.     slTemp := GetFirstRow();
  94.     while (slTemp <> nil) do begin
  95.       for ix := 0 to slTemp.Count-1 do begin
  96.         Memo1.Lines.Add(slTemp[ix]);
  97.       end;
  98.       Memo1.Lines.Add(StringOfChar('-', 60));
  99.  
  100.       FreeAndNil(slTemp);
  101.       slTemp := GetNextRow();
  102.     end;
  103.   end;
  104. end;
  105.  
  106. end.
  107.  
  108.